package com.javatian.service;

import com.github.pagehelper.PageInfo;
import com.javatian.entity.Account;
import com.javatian.entity.GoodsInfo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 商品信息对外提供的服务
 */
@Service
public interface GoodsInfoService {

    /**
     * 增加一条记录
     */
    public GoodsInfo add(GoodsInfo goodsInfo);

    /**
     * 删除一条记录
     */
    public void delete(Long id);

    /**
     * 修改一条记录
     */

    public void update(GoodsInfo goodsInfo);

    /**
     * 根据主键查询一条记录
     */
    public GoodsInfo findById(Long id);

    /**
     * 查询所有记录
     */
    public List<GoodsInfo> findAll();

    /**
     * 根据条件分页查询
     * @param pageNum 第几页
     * @param pageSize 每页数量
     * @param name 名称
     * @param user 用户信息
     * @return 当前页的List列表
     */
    public PageInfo<GoodsInfo> findPage(Integer pageNum, Integer pageSize, String name, Account user);

    /**
     * 根据商品类型获取热门商品
     */

    List<GoodsInfo> findByType(Integer typeId);


    /**
     * 推荐商品
     */
    PageInfo<GoodsInfo> findRecommendGoodsInfos(int pageNum,int pageSize);

    /**
     * 查询用户购买过的所有商品
     */
    List<GoodsInfo> getOrderGoods(Long userId,Integer level);
}


















